// file: 文件输入输出

#include <stdio.h>

int main(int argc, char const *argv[])
{
    // 可以用 < 输入文件，用 > 写入文件的输出
    // 例如 fileIO.exe < fileIO.in > fileIO.out
    // 但是我的 Power Shell 不能用 < 重定向...


    // 一般的方式：FILE
    // FILE* fopen(const char* restrict path, const char* restrict mode);
    // int fclose(FILE* stream);
    // fscanf(FILE* , ...);
    // fprintf(FILE*, ...);

    // 标准结构
    // FILE* fp = fopen("file", "r");
    // if (fp)
    // {
    //     fscanf(fp, ...);
    //     fclose(fp);
    // }
    // else
    // {
    //     ...
    // }

    // 下面的 "r" 必须是双引号！！！
    FILE* fp = fopen(".fileOpen", "r");
    if (fp)
    {
        printf("ok\n");
        int num;
        fscanf(fp, "%d", &num);
        printf("%d\n", num);
        fclose(fp);
    }
    else
    {
        printf("no!!!\n");
    }

    // | fopen参数 |                        作用                        |
    // | :-------: | :------------------------------------------------: |
    // |     r     |                      打开只读                      |
    // |    r+     |               打开读写，从文件头开始               |
    // |     w     |     打开只写。如果不存在则新建；如果存在则清空     |
    // |    w+     |     打开读写。如果不存在则新建；如果存在则清空     |
    // |     a     | 打开追加。如果不存在则新建；如果存在则从文件为开始 |
    // |    ..x    |          只新建。如果文件已存在则不能打开          |
    // w+ 开始是没有东西可读的，但是可以读出写进去的内容
    
    return 0;
}